3.1.1 Komprimert omkoding - inlist
Ved koding/omkoding av variabler basert på lange if-betingelser, kan
funksjonen inlist
være nyttig å bruke. Et eksempel er om man ønsker å lage en variabel som tar verdien 1 for personer som er bosatt i et utvalg av 100 kommuner. Dette ville gitt en generate- evt. replace
-kommando med et svært langt if-uttrykk. Ved bruk av inlist
kan man gjøre dette mer komprimert ved å liste opp alle kommunenumrene separert med komma inni en funksjonsparentes.
Den logiske funksjonen inlist
settes til 1 ("true") dersom verdien i det første argumentet finnes blant de resterende argumentene.
Argumentene til funksjonen kan være både variabler og verdier (alle typer).
Eksempler:
-
generate var = 1 if inlist(sivstand, 1, 3, 5)
(inlist-funksjonen = 1 ("true") dersom sivstand = 1, 3 eller 5) -
generate var = 1 if inlist('1', regstat09, regstat10, regstat11)
(inlist-funksjonen = 1 ("true") dersom minst en av regstat-variablene = '1')
Eksemplene over tilsvarer disse uttrykkene:
-
generate var = 1 if sivstand == 1 | sivstand == 3 | sivstand == 5
-
generate var = 1 if regstat09 == '1' | regstat10 == '1' | regstat11 == '1'